package main

import "fmt"

var (
	variablex int
	slince []int
	interfaces interface{}
)
func main()  {
	var variable1 int
	// 简短申明
	variable2 := "hahah"
	var variable3 = 3
	var i = 1
	var j = 2
	fmt.Print(i, j)
	i, j = j, i
	fmt.Print(i, j)

	var variable4, variable5, variable6 = 1, "abx", 3.14

	fmt.Print(variable1, variable2, variable3, variable4, variable5, variable6)

}

// 通用
// %V 值默认格式输出
// %+V 类型%v, 但是输出结构体的时候会添加字段名
// %T 输出值的类型
// %% 百分号
// %t bool值输出

//1.3 常用打印函数
//打印：
//
//func Print(a ...interface{}) (n int, err error)
//
//格式化打印：
//
//func Printf(format string, a ...interface{}) (n int, err error)
//
//打印后换行
//
//func Println(a ...interface{}) (n int, err error)
//
//格式化打印中的常用占位符：
//
//格式化打印占位符：
//%v,原样输出
//%T，打印类型
//%t,bool类型
//%s，字符串
//%f，浮点
//%d，10进制的整数
//%b，2进制的整数
//%o，8进制
//%x，%X，16进制
//%x：0-9，a-f
//%X：0-9，A-F
//%c，打印字符
//%p，打印地址
//。。。
//示例代码：
//
//package main
//​
//import (
//"fmt"
//)
//​
//func main() {
//	a := 100           //int
//	b := 3.14          //float64
//	c := true          // bool
//	d := "Hello World" //string
//	e := `Ruby`        //string
//	f := 'A'
//	fmt.Printf("%T,%b\n", a, a)
//	fmt.Printf("%T,%f\n", b, b)
//	fmt.Printf("%T,%t\n", c, c)
//	fmt.Printf("%T,%s\n", d, d)
//	fmt.Printf("%T,%s\n", e, e)
//	fmt.Printf("%T,%d,%c\n", f, f, f)
//	fmt.Println("-----------------------")
//	fmt.Printf("%v\n", a)
//	fmt.Printf("%v\n", b)
//	fmt.Printf("%v\n", c)
//	fmt.Printf("%v\n", d)
//	fmt.Printf("%v\n", e)
//	fmt.Printf("%v\n", f)
//	​
//}
//​